package com.wgz.medicalmanagement.domain.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 登录响应数据传输对象
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LoginResponse {
    
    /**
     * 用户ID
     */
    private Long userId;
    
    /**
     * 用户名
     */
    private String username;
    
    /**
     * 真实姓名
     */
    private String realName;
    
    /**
     * 用户角色
     */
    private String role;
    
    /**
     * 认证令牌
     */
    private String token;
    
    /**
     * 令牌有效期（毫秒）
     */
    private Long expiresIn;
    
    /**
     * 从VO对象转换为DTO对象
     *
     * @param voResponse VO对象
     * @return DTO对象
     */
    public static LoginResponse fromVO(com.wgz.medicalmanagement.domain.vo.LoginResponse voResponse) {
        return LoginResponse.builder()
                .userId(voResponse.getUserId())
                .username(voResponse.getUsername())
                .realName(voResponse.getRealName())
                .role(voResponse.getRoles() != null && !voResponse.getRoles().isEmpty() ? 
                      voResponse.getRoles().get(0) : "USER")
                .token(voResponse.getToken())
                .expiresIn(voResponse.getExpireTime())
                .build();
    }
} 